1. Field of the Invention
The present invention is related to the field of using data packets to transmit voice data for network telephony, and more specifically to methods, devices and software for transmitting such data packets over connections of packet networks that are made according to unreliable communication protocols.
2. Description of the Related Art
Telephone calls are made through packet networks by rendering sound into voice data, organizing the voice data in packets, and then transmitting the packets through the network. Transmission is over a network connection that is made under a protocol for voice. Such protocols are collectively known as “voice over internet protocol”, and are abbreviated as VoIP.
A certain characteristic of voice data permits significant savings in network resources, especially as contrasted in transmitting file data. Each packet contains such a small portion of the overall voice data. The characteristic is that, due to how a human hearing works, it is acceptable if some voice data packets are lost. This enables using an imperfect communication protocol over the packet network for transmitting the voice data.
Imperfect communication protocols are often called unreliable communication protocols. They are also called, more generally, faulty or error prone protocols. One of their features is that they do not retransmit packets, even when errors are detected. Digital Signal Processing (DSP) at the end point may recover in case of loss of a single packet by reconstructing it. If, however, multiple voice packets are lost, the voice degradation is perceptible.
A usual choice of a faulty communication protocol is the so-called unreliable data protocol (UDP) for transmitting the voice data. The UDP does not require a confirming handshake for transferring a packet between successive network nodes. This uses less bandwidth of the network than, for example, the resource intensive TCP/IP network protocol for transmitting file data. (But then again, the TCP/IP network protocol is used for transmitting file data, where no losses are tolerated.)
When data is transmitted over an IP network using the UDP protocol, some of the voice packets are lost. When that happens, the quality of a telephone conversation is degraded, which is undesirable. Still, the UDP network protocol is used because it conserves significant network resources. In addition, its operation is better suited to work with the real time nature of voice communication. In contrast, the TCP/IP protocol does not yield good real time results due to asking for confirmation of transmission of packets.